/*************************************************************************
 *                                                                       *
 * This file is part of the DogosFrame distribution.  For full copyright *
 * information, see COPYRIGHT and COPYING.LESSER.                        *
 *                                                                       *
 * Author:           sqbang                                              *
 * Email:            sqbang@ustc.edu                                     *
 *                                                                       *
 *************************************************************************/

#ifndef DOGOS_include_COMMON_base_Constants_h
#define DOGOS_include_COMMON_base_Constants_h

#include "DogosConfig.h"

//C++ headers
#include <string>

namespace DOGOS
{

/**
 * error code
 */
const int         TBOX_DECIDED_VALUE        = -1;
const int         TBOX_DEFAULT_VALUE        = -2;
const int         TBOX_INVALID_VALUE        = -10;
const std::string TBOX_DECIDED_STRING_VALUE = "TBOX_DECIDED_STRING_VALUE";
const std::string TBOX_DEFAULT_STRING_VALUE = "TBOX_DEFAULT_STRING_VALUE";
const std::string TBOX_INVALID_STRING_VALUE = "TBOX_INVALID_STRING_VALUE";

/**
 * print format
 */
const int    TBOX_NODE_WIDTH      = 7;
const int    TBOX_PROCESSOR_WIDTH = 7;
const int    TBOX_PATCH_WIDTH     = 7;
const int    TBOX_LEVEL_WIDTH     = 4;
const int    TBOX_BLOCK_WIDTH     = 7;
const int    TBOX_INT_WIDTH       = 7;
const int    TBOX_DOUBLE_WIDTH    = 15;

/**
 * tab value used to tells fill how many spaces when insert a tab key.
 * now default to 4
 */
const unsigned short ONE_TAB = 4;
const unsigned short TWO_TAB = ONE_TAB * 2;
const unsigned short TRI_TAB = ONE_TAB * 3;
const unsigned short FOR_TAB = ONE_TAB * 4;

/**
 * constant
 */
const double TBOX_TOL          = 1.e-8;
const double TBOX_ROUGH_TOL    = 1.e-4;
const double TBOX_PI           = 3.1415926535897932384626433832795029L;
const double TBOX_E            = 2.7182818284590452353602874713526624L;
const double TBOX_INF          = 1.e100;

}

#endif
